package ar.edu.utn.frba.disenio.model.tests.entrega3;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import com.oceanic.AerolineaOceanic;
import com.oceanic.AsientoDTO;

public class OceanicUnaEscalaMOCK extends AerolineaOceanic {
	
	List<AsientoDTO> asientosDisponibles = new ArrayList<AsientoDTO>();
	private static AerolineaOceanic INSTANCE;
	
	protected OceanicUnaEscalaMOCK(){
		asientosDisponibles.add(new AsientoDTO("OC100",10,"30/11/2012","30/11/2012","05:35","06:35",new BigDecimal("3150.98"),"Ejecutiva","Pasillo",false,"_BS","SLA"));
		asientosDisponibles.add(new AsientoDTO("OC99",11,"30/11/2012","30/11/2012","07:35","08:35",new BigDecimal("2123.09"),"Ejecutiva","Pasillo",false,"SLA","MEX"));
	}
	
	public static AerolineaOceanic getInstance(){
		if(INSTANCE == null){
			INSTANCE = new OceanicUnaEscalaMOCK();
		}
		return INSTANCE;
	}
	
	@Override
	public List<AsientoDTO> asientosDisponiblesParaOrigen(String origen, String fechaDeSalida){
		List<AsientoDTO> asientos = new ArrayList<AsientoDTO>();
		for (AsientoDTO asiento: this.getAsientos()) {
			if (origen == asiento.getOrigen() & 0 == fechaDeSalida.compareTo(asiento.getFechaDeSalida()))
				asientos.add(asiento);
		}
		return asientos;
	}
	
	@Override
	public List<AsientoDTO> asientosDisponiblesParaOrigenYDestino(String origen, String destino, String fechaDeSalida){
		List<AsientoDTO> asientos = new ArrayList<AsientoDTO>();
		asientos.add(this.getAsientos().get(1));
		return asientos;
	}
	
	@Override
	public Boolean reservar(String dni, String codVuelo, Integer numAsiento){
		return true;
	}
	
	public List<AsientoDTO> getAsientos(){
		return asientosDisponibles;
	}
	

}
